Website powered by

Shameless Confessions from the Lazy Artist

Article / 14 February 2019

I am a lazy Artist. 

There. You have it. The truth. 

In a job interview, you might hear potential candidates smile and nod eagerly, insisting that they are hard workers; that they can grind HAPPILY through any monotonous and repetitive task without so much as a whimper - all to seal the deal and get the job. But lets face it, very few creatives actually like doing something monotonous and repetitive. Not to bash anyone who is fond of meditative trans-like states, but when the whir of fire burns inside to create - and I mean not just "make" but really CREATE -  a calm zen mindset can be a pretty jarring and counter-intuitive state to be in for many of us.  So lets be completely honest, I'll be the first to admit: "I am a lazy Artist."

You might think its a bad thing...

...and understandably, as our society has come to associate laziness with lethargy. But a lazy person is not necessarily lethargic. It simply means that we are made intolerant of inefficient behavior. In other words, if channeled properly, lazy can be a good thing.

Mind you, when it comes down to it and there is no other way, many times have I sat down through days, even weeks of doing a repetitive task so as to over come a certain stage in the creative process. For instance, I recently had a client that wanted a sculpted toy dragon for an up coming toy expo. He is a very detail oriented client with the highest standards in precision. 

So as a Lazy person, I weighed my options: 

Tilable displacement maps converted to geometry, or, duplicating and arranging each scale one by one? After some careful thought and consideration, I decided to go with the latter and add each scale one by one on the dragon.

The reasons? Several. First of all, tilable texture scales are great but for something that is going to be appreciated up close in a very tactile way... lets just say I am lazy but not THAT lazy. Wherever possible, quality comes first. I could have gone down the multi Nano-mesh route in ZBrush, but seeing as this is a decimated sculpt and I needed a variety of scale sizes, there is no predicting how this arrangement would show (likely very sloppy). Thirdly, my vision for this particular project was to make the little dragon blossom with his scales, meaning the scales were added on very much like a flower arrangement ( thank you 4 years working part time in a flower shop to pay for University!) But, honestly, if there was a way to wave a magic wand and skip all of that toil, I'd be the first one to reach for it. And this is the whole point of this article. 

Lazy people are motivated to be efficient workers. 

They do not simply get to work, they pause for a moment and consider the fastest route towards reaching a goal without compromising on quality. Lazy people are the first to learn scripting for instance, the motivation being that the evening they spend hacking out code is worth the countless times they will encounter a similar problem in the future with a solution at hand ready to solve it in minutes. And for those of us who are even smarter, we might try googling for a pr-existing script first! No sense in re-inventing the wheel, right?

So for my next project. I had setup a scene of a crash site. The objective being that I would create a plane crash scene that is so believable, my own mother could never tell its CG. In other words, fidelity is key. So as I setup my scene, slapped on some scanned assets real quick just to set the mood of the scene and placed my plane model, I began to think about how I was going to tackle this particular project. 

Since this is mostly a texturing exercise, I chose a WWII Flying Fortress bomber plane to make the most of those gritty textures. As I compiled reference images, I quickly realized I needed a strategy. War era bomber planes had crude bolted paneling. Meaning that every panel is bolted down along its periphery.  


Of course, my plane model had no bolts. So I made a bolt. Yay! One down, a zillion left to go! However, before I was going to commit myself to say roughly ten thousand bolts, I paused to question: 
1. Is the plane going to be seen up close? Yes. 
2, Is the plane going to be viewed from all angles? Lets say, in this case, if I were working on a film that reused this asset several times, the answer would be, yes. 
3. Lastly, and most importantly, do I really need to place every bolt one by one? Thankfully, after some google searching, and scripting, the answer was, heck no!

So I found a script. One that could not only quantitatively duplicate meshes along a curve, but also ascertain their size, position, and spacing. Score! As I went to search for lines along the plane which I could add bolts to, I realized that unfortunately, in my case, the plane model I am using is full of triangles and ziltch on edge-loops (of course!) which could have been beneficial for lining up the bolts.  

Okay, no sweat. We regroup our thoughts and adapt.

Instead I got creative with some live linking and curves. In the end, it was actually a bit of a side bonus to use curves as it lent to a more hand-made approach, what with the slight wobbles and imperfections that you wouldn't get from a perfect edge loop ( + 1 fidelity! )

An hour later, and boom! Roughly 10,000 bolts, give or take some (I am too lazy to count them ;) ) and of course, brought to you by a lazy artist.

You're welcome.

Looking for the script? You can download it from the old school geniuses here: https://www.highend3d.com/maya/script/duplicate-along-path-for-maya

I should mention though that if you are going to tackle a large amount of duplicate meshes, instancing is a much more memory efficient method, so if that is the route you wish to go, I found an alternative script that creates instances here (just make sure to delete the history as you go!) : https://github.com/mmerchante/instanceAlongCurve
  

When a debated discussion opens new avenues by sparking new ideas

General / 29 January 2019

 I had a debated discussion with a fellow artist over whether or not modeling straight in Maya using traditional modeling tools is the faster route to clean and low-count topology. The argument being that ZBrush is best left for concept work only and for some situations I simply disagreed.


In any case, we had agreed to disagree however no matter what I did, I couldn't shake off that particular exchange. There was nothing unkind or jarring about it, but it was something in the limited thinking of that discussion (that a program can only be used for one thing) that didn't sit well with me. What if there was more than one way to do something? 

What if it was possible to push the boundaries of a program's intended purpose?

For some scenarios, modeling in Maya is best: if I were building a water bottle for instance or even a jet plane, I'd spare myself the hassle of redoing the topology on something that can be built quickly and simply using traditional tools in Maya. But for the more complex stuff, the stuff that lives and breaths life and that really benefits from an intuitive sculpt, I wasn't so sure about that statement (you are welcome to chime in here and prove me wrong. The point of this is to reach out and learn, right? )

Nevertheless, I started to doubt myself. So I went home and tested it out for myself.

This is C18, a character model I am building for the Dragon Ball Z Tribute film to raise funds for the non-profit organization: Sick Kids. While I search for work, I figured I might as well put the time and energy I do have into something worthwhile. This character is based off of the original series whereby the 3D animated feature film would showcase some classic manga style with a modern twist of realism and I am honoured to have been assigned this character by the team (she is my favourite! :D ).

C18 was sculpted in ZBrush in just a little over 2 days (including the retopology). To move things along quickly, I used an old 3D base female model I sculpted (which already has standard body ratios) and went to town to give this character more definition, such as the classic Anime facial features and some body musculature. The experience was fast, fluid, and most of all enjoyable, which helps with creativity.


Thanks to some great new tools such as "ZWrap" (or the previous version: "Wrap3"), I was able to redo her topology in under 60 min (45 if you exclude the humming and hawing that comes with hypothesizing over a new workflow).


I don't know how long a model like this would take using traditional tools in Maya but honestly, 2 days seems like pretty good time to me. Here are some comparison renders of the high resolution decimated original sculpt and the low resolution retopo-ed model with Displacement and Normal Maps.



Experienced VFX Artists, I am more than happy to hear your thoughts on this matter. The goal is to progress, not to butt heads with superiors. And if anyone is asking, Yes!, I am still looking for a job - a home which would take the chance and make the most of my skill set.    





Marvelous Designer to Maya: Part 5 - Pockets, Seams and Buttons

Tutorial / 23 January 2019

Table of Contents

Fancy Patches, Straps & Pockets: 

You want to avoid Non-Manifold geometry like the plague. Seriously... its not worth the short cut; you might think, "ah, who cares, no one sees it once its textured right?" but you'll spend all of this time welding the pockets to your mesh, and your mesh will be pretty much useless unless its done correctly. Non-Manifold geometry is hair ripping stuff. Most importantly, you can't sculpt adjustments later on to the mesh if you need to make any, so either get the geometry right at this point or omit the pockets, straps and miscellaneous doo-dads all together. Like I mentioned previously, before embarking on this step ask yourself, "is it really worth it? Do I need fully functional pockets patches and straps?"

Patches

Lets start with a simple patch. Patches are sewn onto an already existing surface of fabric. The Non-Manifold geometry occurs where there is a redundancy of geometry; in this case where the patch meets the garment. Instead of creating a nice quadrangular grid, you end up with vertices projecting edges in three directions instead of two.  Here's an image I stole from the Autodesk website. The first example (left) is what most commonly happens when you attach bits to your garment. To combat this, we will eliminate the two pieces of mesh that meet, and merge the vertices to attach the patch. Simple!

This vest has a large patch at the back. The shape and size of the patch and the shape and size made by the missing faces on the front facing faces of the vest are more or less the same:

That painful step we did earlier in Part 2, lining up the grid of the main garment mesh with these pieces is now paying dividends. Now when you sew your patch on, you will avoid any awkward stretching caused by the Merge command. Now you can place the patch back in place, select the matching vertices and merge them. If your vertices don't quite line up (it happens, especially at this level of detail), you'll have to manually do them two at a time. 

TIP: If merging becomes rather cumbersome and time consuming, go to Edit > Delete by Type > History. Doing that every once in a while when things get sluggish, should speed the process up along.

A quick note about stretching: 

Stretching inevitably happens when the vertices of the patch (or any piece) and the hole in the garment don't quite line up. You can devote a lot of time and energy getting those pieces to fit just right before cutting and sewing them together but sometimes, you just don't quite get it right. Here is an example of where the shape of my patch did not quite fit the Jacket. Even though I lined the patch to the jacket up perfectly before transferring attributes, the process still turned out less than perfect. To solve this I worked on the stretched areas by relaxing them. The goal is to make the area relatively even whereby the squares are roughly the same size in comparison to one another. My example here is not perfect (the corners are a little sorry on the eyes) but I'd like to think that its good enough. At some point you have to let some things go so as to move onto the next step without losing too much time.

Tip: Quad Draw offers a great relaxing tool. You can also relax the lines with more accuracy using scripts. I made my own but you can get a few similar features from  ZhCG's Poly Tools .

Straps

Straps pretty much follow the same process. In the case of the vest, two buttoned straps adorn the bottom back border of the garment. To be completely honest, I never really noticed these things until I took a closer look at a jean Jacket I had and wondered, "what on earth are they even there for?" In any case, creating them meant for a more realistic and true to source garment (plus, in the original series C18 had those loopies drawn on. For a simple Manga, that's a whole lot of commitment to useless denim loopies!). To digress, some elements are undeniably important in communicating the "it-ness" of a thing, in this case denim apparel (they put those useless straps EVERYWHERE!)

Attaching the straps is fairly simple. Start off by removing the faces that will be sewn to the garment. In this case, all I needed to remove was one row of faces on the inside shell, closest to the straps end, where it will be sewn to the vest. Having counted the faces, I know I have exactly 10 vertical faces to remove on the corresponding area of the vest's main geometry.

TIP: selecting the faces in the UV editor is sometimes a handy way to counting and determining what needs to be removed. Its also a great way to count vertices/edges and get a simplified view of the mesh.  A word of caution when deleting faces though: deleting them in the UV editor will delete the respective UV faces but not necessarily the mesh faces. If you use the UV editor to select faces to delete, deselect and re select a single face in the Viewport before hitting the delete key. This will ensure that both the mesh and the UV faces are deleted.

Pockets

Pockets are a little more complex than patches and straps. If you've opted for the hyper-realistic and fully functional pocket as averse to fake pockets, you must retain the important fact that every pocket has an inside and an outside. That means, unlike patches, you can't just delete internal faces. 

To start, I always move my pockets away from the main garment mesh. This helps me get a better view of what it is I am actually working with. To keep a track record of the placement of the pocket I pick a single axis (X, Y, or Z) to move the pocket away from the garment. Whenever I need to move the pocket back into place, all I need to worry about is sliding it back along that same axis.

Now, instead of removing the inner mesh like we did with the patch, we need to retain most of it so that whatever slips into the pocket doesn't fall into a void of back-facing normals. Instead, we are going to do something similar to what we did with the strips. By removing a "U" shaped strip of faces along the back edge of the pocket and a similar scenario on the front facing mesh of the vest, we can then safely sew the two pieces together without risking any non-manifold geometry. Just like the strap's 10 to 10 faces, we are going to ensure that the same number of faces are removed behind the pocket and on the vest (ensure the shape you have on the front face of the garment lines up with the pocket!) This is why we made those adjustments earlier to match the shape of the pocket to the corresponding area on the vest. Now when we sew the two together, not only do the vertices line up, but we avoided some terrible disasters caused by UV stretching. Generally, you want your UV maps to mimic your final mesh as much as possible, by keeping the vertices in more or less similar sized squares to one another.

Ok, lets see if I can communicate this part as clearly and as concisely as possible. The first thing you want to do is sew the inner remaining faces of the pocket to the outer remaining faces on the vest. This is going to create a mini pocket inside your outer pocket that will actually hold items. I started off by sliding my entire pocket back onto my vest (1). The vertices line up perfectly, so we are good to go.

I then selected the front and side UV shells of the pocket (omitting the top thickness strip)(2) and peeled them back (again, along a single axis) away from the vest(3). This is so that I can see what I am doing while merging the inner parts together. You don't want to select the top strip because that piece is already merged to the inside mesh. Now that you can see what you are doing, merge the inside mesh of the pocket to the corresponding outside mesh of the pocket(4), like so:

And just in case I wasn't quite clear enough - and seeing it in real-time is so much better - here's an example of what the pocket looks like with its layers expanded and the inside pocket meshes sewn together:

Now you can go ahead and sew the external parts of the pocket to the vest.

And there you have it! Fully functional pockets! You can sew on the pocket flaps the same way we did the straps earlier in the tutorial.  
With all of the pieces sewn and merged together, you can test out your mesh for any non-manifold geometry in the Mesh Cleanup section (by telling it to select problematic vertices. I tested my vest quickly by going into the Sculpt section and tried to move any surfaces around with the Grab tool. Everything worked with no error alerts, so that was reassuring :)

Faking Pockets

So you've looked through the steps to make actual pockets and realize that for your situation, "eh, it's not worth the effort." I  get it. When I redid the topology of the skirt, there definitely were pockets I faked, namely the two front pockets that are super tiny, tight as heck, and for most women's jean skirts, are actual fake pockets anyway (which might I add, is super annoying when clothing companies do that!)

The good news though, is that fake pockets are a lot quicker to make, so when it comes to 3D modeling, it might be considered a good thing.

To fake pockets, select the area you wish to add a pocket on your garment, CTRL+E to extrude. Add 2 divisions . Then at the top of your pocket, select the faces you would like to cave in, and extrude them inward.  

Buttons

Buttons are essentially the same thing. All you need to do is ensure that the little nub at the back of the button takes up 1 square face. You can then remove a single face where the button will go on the garment and remove the face at the butt of the button's back nub. Line them up and merge the 4 matching vertices together. 


A Serious Talk About Seams

At this stage, if you are happy with your model and its UVs you can go straight to texturing. If I was creating a pristine looking garment with no rips, tears, frays or serious displacement values at the edges, I'd do the same. However, because we are working on a slightly worn piece of denim, it is expected that there are significant imperfections along the edges. This is problematic for our current UV layout as any significant displacement values created by these imperfections will collide with one another along the UV borders  of those edges.  

To solve this problem, we are going to focus our attention on those problem areas. First, lets look at how a Jean jacket is actually constructed. In the example image below, we see that the seams are sewn outside and inside the jacket.  Essentially the jacket maker sewed a flap around the inside and outside of the opening to give it greater resilience to the elements. This is great news for us because we are going to do the same with our model. As a rule of thumb, wherever you see stitching, that's where we will define our UV borders.

This is where making the thickness UV strips correspond with Marvelous Designer's UV shells simplifies your life. Now, all you have to do is select your border UV shells (1), drag them to the side in the UV editor to better see them (2). and Move and Sew them together (3). You want to sew the border edges that connect with the thickness shell. Don't forget to Layout your new shell!



 As previously mentioned, you only want to do this where the garment might show some wear and tear (generally around its borders). In the case of the Jacket, I did this on sections of the jacket's opening, the collar and the arm holes. In the case of the arm holes, instead of sewing the thickness border edges to the inside and outside shells (which would have made some seriously awkward and large UV shells) I split the inner and outer shells approximately 2 vertices inward (or outward) creating a subsection to these zones and sewed those pieces to the thickness in order to mimic a sewing seam.

And that's a wrap! I hope you found this 5 part tutorial useful. Once you understand how it all works, it goes pretty fast (I promise!) and the more experience you have working with retopology the less mistakes, requiring back-stepping, you'll make. 

I may look into extending this tutorial and continue the vest workflow into Texturing. Please let me know in comments if you would like more breakdowns such as this one and I'd be happy to give it a shot.

If you have any questions, feel free to leave a comment and I'll try to answer them as best as I can. If I can't answer something, Ill try to find someone who can.

Cheers!
Emilie
  

Marvelous Designer to Maya: Part 4 - UVing

Tutorial / 23 January 2019

Table of Contents

UV-ing


Okay, here comes the fun part. By now your garment has undergone a complete re-topology, with clean edge loops and welded (merged) vertices. Everything lines up perfectly, and if you were diligent at the beginning with your counting, you will have arrived at this stage relatively quickly. If you weren't, well you likely suffered through the process and had to give the transference of attributes a few frustrating tries. The more complex your sewing scheme, the greater the puzzle, so unless you are answering to a rather demanding client or superior at work, I  highly recommend asking yourself the following BEFORE embarking this journey: "what can I do to simplify this process without compromising on the finished work?" At some point the effort is no longer worth the agony and time. In this case, the project required that the pockets be usable as Ncloths, so extruding fake pockets was not an option. Furthermore, the giant patch at the back of the jacket was deemed iconic to its owner; it was large enough and important enough, so we kept it. That said, I removed the patchwork letters, "R R",  with plans to add them in later using displacement maps and texturing. At that level of detail, the headache wasn't worth the effort and the team agreed I could forgo the meshed letters.  In the absence of the letters however, you can still see their indentations from the sewn tension lines, thanks to the work done in Marvelous Designer as well as the transference of attributes we did earlier.

UV-ing thickness

Since Marvelous Designer is just not quite there yet in retopology, We need to UV the thickness of the clothing manually. You COULD export a thick version of your clothing mesh, cross your fingers and toes and Zremesh it in Zbrush hoping something reasonable turns out. And I suppose for very basic clothing this could work. Call me a QUAD-SNOB but personally I find that option of theirs ineffective in this scenario as the results are less than stellar on anything beyond a simple shirt. Luckily there are some tools available in Maya to quicken and simplify the process. I used the Planar Projection Method, by selecting all faces pertaining to the jacket's thickness (1), Projecting (2) and Unitizing (3) them. There. No fuss, and no finger crossing, nail biting, quantum leaping results.

Unitizing the faces will create perfect squares, meaning every face is now the exact same size and its own UV shell, which makes it much easier to create clean strips. To sew the UV shells into strips, select all edges along the thickness (excluding corners and where the main UV shells intersect) (1) and Cut/Sew > Move and Sew them together (2). Excluding the corners and main UV shell intersections is a very important step in this process as it determines the beginning and the end of each strip, lining them up with the current UV shells created in Marvelous Designer. This will become paramount later on, especially if you want to get that obsessively "seamless" natural look at the texturing stage. 

TIP: Projecting, Unitizing and Sewing ALL of the strips in one fell swoop will save you a lot of hassle. You will spend a lot less time pressing menu buttons and commands, not to mention the immense satisfaction you get from seeing it all manifest in 3 simple mouse clicks! Aww yisss!

At this point all of your thickness strips are laid out. Now we need to integrate them with the other UV shells. The first step is entirely optional(1). I left my strips horizontal because they laid out that way (other advantage of laying out UVs using a single command). Secondly you want to Unfold the strips. Select all strip faces, in the UV toolkit > Modify > Layout □ . Unfold along U or V (U = horizontal ; V = vertical) (2). You can then Straighten the UV strips (3) if you are persnickety like me.  

Now lets fit all of the shells together into one nice UV set. For those of you stepping ahead and thinking about creating two UV sets (inside and outside fabrics for instance) hang on! There are a few adjustments that you might want to make beforehand, especially for clothing such the vest in this example, which has a very visible inside and outside.

The first thing you want to do is flip any reversed UV shells. Save yourself the hassle and check the box in the Legacy version of the Layout Menu (Select all faces > Modify > Unfold □ ). For some reason the Unfold3D method (which is stellar btw) doesn't have this feature, so you'll have to layout twice. Luckily for you, its just a few clicks and checking off a few options before hitting Apply. If you skip the first step, you will be stuck with UV shells that texture and paint backwards to the way you physically see the 3D version of your mesh, which is a total mind-scrunch!  This is a tip I learned from Olivier Couston, and I am forever grateful for his input!

But What About Pockets?!

If you haven't noticed by now, the pockets, patches, and any miscellaneous straps are not welded to the vest. This means that the moment you make the clothing dynamic, they will simply fall off and succumb to the calculated forces of gravity during a Maya simulation; which is bad.  

Part 5 explores how to weld Patches, Straps and Pockets to your garment without problematic non-manifold geometry.

Go to Part 5: Pockets, Seams and Buttons >


  


Marvelous Designer to Maya: Part 3 - Retopology (Moment of Truth)

Tutorial / 23 January 2019

Table of Contents

Moment of Truth

Now that everything is in place and you are happy with your new topology, we finally get to sew our garment back together (yay!)

There are two simple steps to follow:

Step 1: In the outliner, select your original flat mesh and then CRTL + Click your retopo-ed flat mesh (1). in the Modeling menu bar go to Mesh > Transfer Attributes □ (2).  

In the Transfer Attributes menu, make sure to select Vertex Position : Off  ; Vertext Normal : On ; and Sample Space : World (3). Essentially what we are doing here is is taking the borders of the original flat mesh and the borders of the new topology and telling Maya, "Use those matching elements to line up the UVs perfectly in the UV editor". If your edges were already perfectly lined up, you will likely not see anything change here. Basically, now Maya thinks your new topology UVs are identical to the old topology UVs, and since your old topology links up perfectly with your 3D garment, your new topology will wrap perfectly over it (cha-ching!)

Tip: in the outliner, always select your original mesh first before CTRL + Clicking your new Topology. Doing it in reverse will ask Maya to match the old Topology to the new, which is the opposite of what we want.

Now that we've tricked Maya into thinking our new topology is in fact our old topology, we are going to use our matching UVs to guide the new flat mesh onto the original 3D mesh. 

Step 2: Select the Original 3D mesh and CTRL + Select the New Flat Mesh (1). Again using the Transfer Attributes menu, ensure that Vertex Position: On ; Vertext Normals : Off ; and Sample space is set to: UV before click on Apply (2).  If you've respected your UVs and lined everything up correctly, your new topology will wrap over the old whereby the vertices along matching edges will line up.

Tip: If your new garment topology Normals seem a little off (as in everything is grey and you don't seem to have any black or white faces), select the garment, go to Mesh Display > Set to Face. If you have any backward facing normals, you can go ahead and fix those by reversing them.

Sewing the Garment Together

I am not going to lie, if you were not diligent in the Numbers Game, you will cry here. It may even take you a few tries to get it right but with experience, trust me, it gets better. If you counted your vertices right, and lined everything up well, you should end up with seams like the one shown below where the same number of vertices match up along each edge, forming consistent edge loops. You might have situations where vertices may seem to line up but create what I call "Spiral Edgeloops" and this is not a good idea. Ensure that your Edgeloops are straight and consistent. I tend to check my edges seam by seam, just in case I missed something and have to manually merge a vertice here and there, but generally, if you did it right, all you have to do is select ALL vertices, go into the Merge Options, establish a reasonable threshold, and click Apply. Boom! Seams sewn.

Important Note: We are going to avoid sewing the pockets or any extraneous bits at this stage. Leave those bits out until we add thickness to the garment.

Transferring Details

We can go a step further here by mimicking the way the original garment simulated. This will add a level of detail which will lend more to realism by transferring details such as fold lines and wrinkles. 

Duplicate your sewn garment (1) (optional), under the Modeling menu, go to Mesh > Smooth □ (2). In the Smooth Options Menu, set your Division level to 3 or 4 (depending on the power and strength of your computer) and hit Apply (3). This will triple or quadruple the number of edge loops you worked out previously.  

Now, select your Original 3D garment and CTRL + select your Smoothed Retopoed 3D Garment (1). Under the Transfer Attirbutes menu reapply the same settings. This will "shrink wrap" our clothing to an even tighter degree which will include details such as tension lines and wrinkles. 

Tip: Doing a second transfer of attributes AFTER sewing the vertices together makes the sewing process much easier. You don't want to be sewing this many vertices situated that close together.

Adding Thickness

We finally get to add thickness! I mean, after all of this work, a little gratification might be in order. Import your newly subdivided garment back into Maya. With the garment selected, under the Modeling Toolbar, go to Edit Mesh > Extrude (or simply type CTRL + E).

Tip: Hiding all other meshes at this stage will accelerate the process. The Smoothed geometry of your garment will have a tendency of sapping a lot of processing memory.

Some things to consider here: under the Extrude pop up tool, set your thickness using the Local Translate Z option. Set the value negatively (to keep the surface of your garment transferable in the future). When setting the value, think of the type of fabric you are using. We are making a denim vest is this case, so I set mine to -0.22. Its not leather armour thick, but its definitely not linen thin either. 

Also, make sure to set your subdivisions according to your smoothed mesh. The easiest way to calculate it is 2^n whereby n = the number of times you subdivided. In our case, we subdivided three times, so 2^3   = 8 (2 x 2 x 2). 8 is therefore the number of divisions we need to add to our extruded faces. Failing to respect this formula will conflict with your subdivision levels later on. You also want to keep your faces together. Unchecking that will create some really fancy geometry, something Emma Frost might fancy, however for this tutorial, we definitely need to keep those faces together.

Reconstructing Subdivisions

Almost done! We are going to head back over to ZBrush for this part. You could also use Mudbux if you are more familiar with that program. 

Export your selected Combined garment as an FBX. I go into extensive detail in Part 1 over the reasons why we use FBX, so we won't go into that again.

Import your Combined Garment's FBX file into ZBrush. Once in ZBrush, we are going to duplicate our garment (1), and under Geometry > Reconstruct Subdivision a few times until it wont reconstruct any longer. Basically subdividing your garment in the Smooth Options menu 3 times in Maya, will subdivide back down 3 times in ZBrush. Subdividing your garment in ZBrush is a great way to keep a record of data over the folds of your jacket. Once you have completed the process, you can always go back into ZBrush and project those details back onto your Jacket should you ever need to.

And there you have it!

Re-import back to Maya, select all vertices and using the correct threshhold, sew the remaining seams which connect the inner and outer parts of the garment. You have a fully "Retopo-ed" garment. It may seem like a lot of steps, but with a little experience and once you've committed them to memory, you'll find the process will go faster and faster with each iteration.

Go to Part 4 : UVing >

Marvelous Designer to Maya: Part 2 - Retopology (The Numbers Game)

Tutorial / 23 January 2019

Table of Contents

Now that the computer did it's job by giving us a bit of a boost, its our turn to do ours. We ended Part 1 by importing the ZRemeshed flat version of your garment into Maya. We also ensured that the UVs are intact and that our new and improved flat version superimposes perfectly on top of the original flat version in both the viewport and the UV Editor.

The Numbers Game

Think of the next steps as some sort of a puzzle, or better yet, a game. There are only three simple rules to the game, but each one of them is absolutely paramount and must be followed.  Its kind of a Do-or-Die process so if you are less than compulsive about these rules, you might end up doing a lot of back-and-forthing over the silliest of things, so save yourself the time and frustration by getting it right the first time. Luckily for us ZBrush did most of the work. All that's missing is a little tweaking.

The Rules of the Game:

One does not talk about.... just kidding :) but seriously, a good re-topology workflow seems to be everyone's best kept secret (at least on the internet) with a few exceptional gems out there willing to share bits and pieces. We are going to blow it all out of the water here in the name of "Collective Awesomeness" (Is that a thing? I dunno but I guess it is now) by breaking this rule. 

  1.  All faces must be quads. Anything else will generate Non-Manifold geometry, which is a big no-no.
  2.  All borders must line up. That is, your newly ZRemeshed flat garment's edges and corners need to line up as close as possible to the original flat garment mesh in the viewport editor. Anything remotely off will generate less than stellar results.
  3. Shell borders destined to be sewn together must have the same number of vertices. That means if border A has 10 vertices and touches border B when sewn together, then border B must also have 10 vertices. Take note that when you add or remove an edge loop to affect the number of vertices along an edge, it will also affect the number of vertices at the end of that edge loop, likewise affecting other complimentary edges (See? Puzzle!)

1. All Faces Must Be Quads

All faces must be quads so as to avoid the problems caused by non-manifold geometry. Non-Manifold geometry occurs where there is a redundancy of geometry. For instance, if you don't fix your triangles, when the time comes to sew the pieces back together, instead of creating a nice quadrangular grid, you'll end up with vertices projecting edges in more than two directions. Needless to say, the goal here is to create clean and smooth Edge Loops across you garment once its sewn back together. The problem with Non-Manifold geometry is that once you want to do anything else with the mesh, such as make minor changes using Maya's Sculpt tools, an error message will appear prompting you to clean up your mesh. Cleaning up your mesh through Maya's features will almost certainly break your seams.

The good news is that generally, the auto-retopology we did in ZBrush (see Part 1) shouldn't have turned up too many triangles and zero pentagons, so you shouldn't have to spend too much time cleaning those areas up.

To fix non-quadrangular faces, I use Quad Draw. If you are new to Quad Draw here is some documentation to get you started. I also use a variety of other modeling tools such as the Multi-Cut tool as well as the Insert Edge Loop tool. If you are not a modeler, I suggest familiarizing yourself with at the very least some basic modeling tools to help work out this part.  

Tip: When using Quad Draw, its handy to select the original flat garment mesh (1) and clicking on the Make Live button (2). Then, when you go into your remeshed file and use Quad Draw your vertices will snap to the border edges for you, quickening the process. This is especially handy for rule no. 2. If your experience with Quad Draw is getting rather sluggish, its a sign that your History is overloaded. Before starting to work in Quad Draw, uncheck your history (3). Should you ever need to manually wipe the history, you can always go to Edit > Delete by Type > History.

2. All Borders Must Line Up

This part is pretty easy. Again, using an orthographic view (front), drag the vertices which don't quite line up along the edges and match them up with the borders of the original flat mesh you imported. Just make sure you don't miss any.

3. Matching Borders Must Have the Same Number of Vertices

Rule of thumb: Keep it simple. Your natural inclination may be to add edge loops everywhere, but the more loops you add, the more vertices you are going to have to line up and match later, so keeping the number of vertices low is best. I have learned to find a balance between adding and removing edge loops for this reason.

So in a scenario such as this one, where there are quite a few pieces, I like to draw up a quick mind map. You can do it like I did by taking a simple screen shot and counting the squares using coloured markers in Photoshop. The only thing you have to do is ensure that the edges destined to be sewn together share the same number of vertices (or squares to make counting easier).

The first time I worked this process out, I literally did it by scribbling on a napkin. You could even go back into Marvelous Designer and use the 2D viewport to help you figure out which edges sew together. Take a deep breath, observe all of your seams (if it helps use your 3D imported model) and work out the puzzle one edge at a time. I like to pick out a piece that sits in the middle of my garment (such as the back piece of the vest) and count my squares fanning outwards. Its easier to push added or subtracted Edge Loops outwards than inwards. If you are not careful, you could end up going round in circles trying to consolidate edges pertaining to pieces with multiple interactions. 

Cleaning Up Your Mesh

Now that your edges are consolidated, the inner part of your mesh might have suffered a bit. Our end goal is to have relatively even squares across your entire mesh. This is to avoid any stretching or odd results when you get to the texturing stage. You could select your vertices one by one and make adjustments that way but that's not my idea of fun. I have no shame in admitting that I am a rather "lazy" Artist, with a motivation to find the most efficient route to my destination.

Scripts Hallelujah!

To speed things along, we are going to rely on some basic scripts. If you don't have your own scripts you can download ZhCG's Poly Tools to get on the fast track. Some of the features we will be using here are the Average Line and the Relax scripts.

Once installed, ZhCG's Poly Tools can be found in the top menu bar, usually to the right of Bonus Tools.

Select one border edge starting from one corner to the other (1) go to ZhCG_PolyTools > Regularize > Average Line (2). Repeat this for ALL borders going from corner to corner.

Tip: if you have a long border edge to select and selecting each edge along the border might seem like a daunting task, select the first border edge closest to a corner and holding the "SHIFT" key, double click to select the last edge along your border. This will select all edges between the first and last edge you selected.

Important Note: If your matching borders have the same number of vertices and share the same length, averaging out your vertices along a border will not only ensure that your internal faces are even, but that your vertices along your border will match later on. This will make your life so much easier when you weld those vertices together further down the line.

Now select all internal edges > ZhCG_PolyTools > Relax.

Making Room for Patches, Pockets and Straps

If you don't have any patches, pockets or straps to worry about, you can skip this section. For the rest of us, we have some decisions to make. When it comes to pockets, obviously faking them by extruding faces and tweaking a few vertices is quickest. If you need fully functional pockets, for instance on a closeup shot, or for a garment requiring an interactive pocket whereby objects fall into the crevice, you're going to have to do a little extra work here.

Now that your Mesh's re-topology is complete, we are going to align our extraneous pieces (patches, straps, and pockets) to our garment. If you've imported internal lines from Marvelous Designer as curves in Maya (see part 1), you can use them as guidelines in order to determine the shape and flow of your edges along those seamlines. If not, you can duplicate your flat garment, keep only the pocket piece and super impose it over the area it will be sewn onto, which seems like more work than simply using the internal lines. Its not much more work, but in a process like this, every little bit tends to add up.

Lets use a front pocket as an example: 

And there you have it! Do this for all pieces you intend to sew onto your garment. The more pieces you have to tack on, the more work it becomes, so like I mentioned earlier, be selective with what you want to work on and to what extent. It may seem cumbersome at first but once you have committed these principles to memory, it becomes almost automatic and goes rather quickly.

Go to Part 3: Moment of Truth >


Marvelous Designer to Maya: Part 1 - Retopology (Domo Arigato Auto-Retopo)

Tutorial / 23 January 2019

Here for the fast track answers? 

No sweat. If you don't want to read the explanations for each step, following the images. Think of them as cue-cards, so if your understanding is keen, skip the text and be on your way to glorious clothing assets!

Table of Contents

For the rest of us, the information provided will hopefully help understand the reasons for each step. I began writing this tutorial as a series of notes to help me not only sort out the best and most efficient methods in retopology but also as a resource to go back to should the need arise. 

Some key people which need to be mentioned before we begin:

  • Alex Mann : an avant-gardist in using features such as "transferring attributes".
  • The guys at Flipped Normals: who set me on the right track exporting from Marvelous Designer.
  • Olivier Couston : super smart guy! He helped me overcome a few obstacles in the process.

Exporting from Marvelous Designer

We will begin by exporting from Marvelous Designer. In this case, we are working on a denim vest. At this stage your garment should be finished in Marvelous Designer, with no intentions of going back to make tweaks or adjustments what so ever. This is important because the point of all of this is to use the streamlined UVs Marvelous Designer exports. You don't want to have to go back in, and redo the topology just because you forgot to add a pocket. If you have multiple pieces of clothing designed and want to single out an item, you can assign the various garments different fabrics and select by property type to isolate the element you wish to export. To do this, select a piece pertaining to the garment you wish to export > Right Mouse Click > Select by Same Property > Fabric.

With the garment selected (1), go to File > Export > OBJ (Selected) (2). This exports a 3D version of your garment. Some very important settings to consider:

This is a really important step. You want your mesh to export as a thin surface because Marvelous Designer can't export UVs with thickness. Since we want to keep the UVs, we are going to have to start with a thin mesh. Besides, redoing the topology of the same jacket twice on a thick surface is not my idea of efficient work. You also want to ensure that your pieces are Unwelded. This means that the vertices along each edge are not merged together and consequently, grants you freedom over your vertices along the edges of your UV shells while redoing the topology.

Tip: If you have pockets or other misc. items, I suggest checking Include Internal Shape. The internal shapes in Marvelous Designer will import as curves in Maya, which will act as excellent guidelines for lining up your extraneous pieces with your garment later on.

Now lets export a flat version of the very same garment. Again, with your garment pieces selected (1), click on the Reset 2D Arrangement button (2). This will lay your pieces flat in the exact same configuration as you have setup in the 2D Viewport (and your UVs). Export your selected pieces as an OBJ (3) ensuring that your export settings are the same (4).
Tip: Save your file BEFORE resetting your garments to a 2D arrangement. It would be a real shame if you had to re-situate all of your fabric pieces onto your avatar simply because you needed to export a flat version of your garment.
Important Note: Do not move your fabric pieces in Marvelous between these two exports. The goal is to keep the UV layout in both exports the same. Changing things around between them will break the links you needs to make this process work.  

Importing into Maya

We part ways with Marvelous Designer and import both versions of the garment into Maya (1).

The principle is very simple. Your Original garment meshes will act as blue prints for your retopology. The 3D mesh will retain the simulated information of the sewn garment while the flat version will act as a template for our new topology. Redoing the topology on a flat surface is much easier and goes much quicker than working on curved planes. 

Check the orientation of your normals (2). Its okay to see some backfacing normals (such as the collar in my vest). Ensure that your back facing shells aren't lining up with front facing shells (and vice versa). If you have a piece that's not playing nice by not facing in the right direction, select the UV Shell > Under Modeling Menu Bar (2.2) > Mesh Display > Reverse (2.3).

At this stage you also want to check your UVs in the UV editor (3). The UVs for both garments must be visible in the UV editor and they MUST match. If they do not match at this stage, the next steps will not work for you.  

Tip: I export my Marvelous Designer garments triangulated for a reason. I know Marvelous Designer recently added a fancy Quad option but I try to avoid anything that is non-native to a program. There is a reason the default for garments is triangles. Triangulated cloths simulate better than quadrangular ones, meaning that when you hit the simulation button in Marvelous Designer, the cloth will "sit" more naturally.

Exporting out of Maya

At this stage, it becomes a question of personal preference and what you are working with. There are a variety of retopology tools available out there (QuadDraw, 3DCoat, Blender, Instant Meshes, etc.) but for this tutorial we are going to use a combination of ZBrush's ZRemesher and Quad Draw. If I had a simpler garment to work with, I might opt out ZBrush and just go straight for Quad Draw. I chose Zbrush as my "buddy program" because I use it quite a bit for organic modeling, so it may simply be a question of what I am used to. Nevertheless, after some extensive testing using several other programs, I found this combination to be the most reliable and efficient combination.  

Since Maya is our primary tool for retopology, bringing everything into the program first and setting up your file is a great way to keep track of your process. I also take advantage of this step to properly name my meshes in the Outliner. As you go through the process you're going to end up with a few duplicate versions of your garment, so naming your first two pieces for instance, ORIGINAL_Vest3D and ORIGINAL_VEST2D will be handy later on when you have three copies of each at various stages of retopology. making duplicates between each step is also a safe way to go through the process. With duplicates, you can always go back a step without having to start the process all over again.  
There is a lot that can go wrong when importing and exporting across various programs, so setting up your Maya file first to ensure everything is in place is probably wise.
Select the flat version of your vest (1) and export selected (2) as an FBX file (3).  

Important note: Exporting as an FBX file (as averse to an OBJ) will guarantee that your UV shells remain intact. In some cases, and for only a percentage of the time, OBJ files will lose their UVs when imported and exported out of programs such as ZBrush. This is a tip I learned from Olivier Couston. I think he tried to figure out why this happens, but has since given up on his quest as nothing consistent seemed to stand out in this glitch.

Importing into ZBrush

For those of you familiar with ZBrush, simply import your FBX file and move onto the next step.

Tip: For the love all all things orderly, avoid using the GoZ pluggin. GoZ is great for many circumstance but this is just not one of them. It has a history of doing some seriously wonky things to not only my meshes but also my UVs. And the worst part is that you won't notice those alterations until much further down the line, forcing you to go back and start the process again. Import the old fashioned way with an FBX file and save yourself the risk.

If you are not familiar with ZBrush, its okay. ZBrush can be a very backwards kind of program whereby its weaknesses stem from its strengths. And since this tutorial is not intended for ZBrush users, we'll walk through it step by step.

In order for your FBX file to import properly, you will need an editable anchor mesh. In ZBrush, this mesh is called a PolyMesh Tool. If you don't setup an anchor mesh first, you'll end up in what I call ZBrush's Flat Land (its a terrible place). 

Open up ZBrush, click on the PolyMesh3D_1 button (1), click on the Edit button (2) and under Zplugin > FBX Export/Import > Import (3) . Find your FBX file and import the flat version of your garment. Your flat garment mesh will magically appear.    

ZRemeshing

The next step is really simple. In fact its so simple it embarrassingly took me over an hour to figure out. Firstly, Duplicate your mesh. Select your new mesh, go to Geometry > ZRemesher > and hit the ZRemesh button. That's it. You're done here. No fancy settings or constraints. If you were diligent with your creation in Marvelous Designer, you should end up with shells like mine; that is simplified and consistent. If some of your border edges are askew, don't worry. We'll fix those later using Maya's Quad Draw.  

ZRemeshing will inevitably destroy your UVs. Luckily, we kept the original version. Select the Original mesh (1) and go to, Zplugin > UV Master > Copy UVs (2). Then select your duplicate Mesh (3), Zplugin > UV Master > Paste UVs (4).

Tip: If you want to double check your UVs, select the ZRemeshed version of your garment ; under "ZPlugin" > "UV Master" > "Flatten". They might come out upside down (because, eh, ZBrush), but they should be arrayed in the same way.

Coffee Breaks Really Do Solve Everything:

This is a classic example where "improving something doesn't necessarily make it better" and where the simplest solution is often best. I had great aspirations of ZRemeshing those shells into perfect borders and even vertices at the click of a single button; but the more I added constraints under the ZRemesher options, the more complicated my results got. And I mean I tried everything: polygroups, freezing, strokes, curve strengths, you name it! And needless to say this was in parallel to a whole array of other similar programs I was tweaking and testing simultaneously. One could only hope to find the "Holy Grail of Instant Re-topology", which sadly, doesn't really exist; but this method might be the next best thing.

Essentially, you want the simplest possible configuration and it was after a series of program crashes, an hour of head scratching, and a well deserved "rage-quit" (well it was more of a "sob-quit") that I decided it was time to put the project down and take a coffee break. Of course, I was in no mood for a fancy latte and opted for a simple black coffee. I had reeled my brain to the point where I just wanted a simple solution to a monstrous problem so it was only when I pressed the coffee machine's button that it dawned on me, "What if I just let the machine do its thing?" Obviously the original settings are meant for optimal results, and just like my black coffee, it dishes out the simplest of configurations so why over-complicate things with my input?  I realized then that by adding constraints, I was overworking ZBrush into some heavy calculations, consequently over-complicating my topology and sometimes even to the point of crashing the program for lack of memory. So if all I had to do was fix a few border edges later on and count a few squares, it didn't seem like a heavy price to pay for the simplest and cleanest re-topology I could get at the click of a single button.

And the best part? I didn't have to change a thing. Computer = 1 ; Emilie = 0 . So I finished my coffee, set my ego aside and decided that it was time to move on. Goodbye wasted hour of my time believing I could solve what didn't need solving. I wont be forgetting this life lesson any time soon.

Exporting out of Zbrush

Tip: Rename your newly ZRemeshed flat garment (1). Renaming will ensure that when you import your altered mesh, it wont conflict with the name you gave your original file in Maya's Outliner.

Import into Maya

Of course ZBrush had to mess up our UVs. Unlike other methods which completely tear up your UVs, this was the closest result I could get without fussing too much over programs and options. Although the new UVs are upside down and somewhat stretched, the important thing to consider here is that the shells are still in the same configuration in relation to one another. This means you wont have to line up each shell one by one with the original flat garment in the UV Editor. 

Instead, in the UV Editor select all ZRemeshed UV shells, Flip the Shells vertically, resize and line them up with the original flat mesh. Flipping the shells vertically will avoid any messy guesswork. You could have flipped them pre-emptively in ZBrush, but since we are dealing with resizing and stretching, you might as well do it here. You can select both meshes in the Outliner to see the UVs of both meshes simultaneously, and select only the Zremeshed Shells to edit. Make sure that when you line up the shells, they line up close to perfection.

Some useful hotkeys: 

  • q = None/Pointer
  • w =  Move
  • e = rotate
  • r = resize

Go to Part 2: Retopology (The Numbers Game) >